package com.co.gateway.filter;

/**
 * @author ldl.plus
 * @date 2020年06月25日  20:12
 */
public class UrlFilter {

    /**
     * 要放行的路径
     */
    private static final String NO_AUTHORIZE_URLS = "/api/oauth/login," +
            "/api/user/add,/api/user/login,/user/signup,/api/comment/add,/api/oauth/signup,/api/search/**," +
            "/api/websocket/**,/api/danmaku/**,/api/rec/**,/api/video/**,/api/videoState/**,/api//detail/**," +
            "/api/category/**";


    private UrlFilter() {
    }

    /**
     * 判断 当前的请求的地址中是否在已有的不拦截的地址中存在,如果存在 则返回true  表示  不拦截   false表示拦截
     *
     * @param uri 获取到的当前的请求的地址
     * @return
     */
    public static boolean hasAuthorize(String uri) {
        String[] urls = NO_AUTHORIZE_URLS.split(",");
        for (String url : urls) {
            if (url.contains("/**")) {
                if (uri.startsWith(url.replace("/**", ""))) {
                    return true;
                }
            } else {
                if (url.equals(uri)) {
                    return true;
                }
            }
        }
        return false;
    }
}
